<?php
/**
 * Administrador de conexiones
 * Factory  de conexiones, levanta conexiones de config.php
 * 
 * @author del valle Federico
 */
class conexionManager {
  static private $instancias = array();

  private function __construct() {
  }


  /**
   * Ejecuta una query
   * 
   * @param string $query Query a ejecutar
   * @param string $nombre Nombre de la conexion
   * @return queryResultset
   */
  static function ejecutarQuery($query,$nombre = "principal") {
    $cnx = self::tomarConexion($nombre);
    return $cnx->ejecutar($query);
  }

  /**
   * Devuelve una conexion a la base
   *
   * @param String $nombre nombre de la conexion (default: principal)
   * @return conexion
   */
  static public function tomarConexion($nombre = "principal") {
    if (configManager::obtener("general", "devmode")) {
      $nombre = "dev";
    }
    if (!isset(self::$instancias[$nombre])) {
      self::$instancias[$nombre] = new conexion($nombre);
      self::$instancias[$nombre]->conectar();
    }
    return self::$instancias[$nombre];
  }

  /**
   * Devuelve el link de una conexion a la base
   * 
   * @param String $nombre Nombre de la conexion (default : principal)
   * @return link|false false si el link no existe
   */
  static function tomarLink($nombre = "principal") {
    if (configManager::obtener("general", "devmode")) {
      $nombre = "dev";
    }
    if (isset(self::$instancias["nombre"]) && self::$instancias["nombre"]->link != null) {
      return self::$instancias["nombre"]->link;
    } else {
      return false;
    }
  }

}
?>
